package com.examples.chartdirector.BarCharts;

import javax.swing.JPanel;

import com.examples.chartdirector.ui.ChartPanel;

import ChartDirector.BarLayer;
import ChartDirector.Chart;
import ChartDirector.ChartViewer;
import ChartDirector.XYChart;

public class BarLabels extends ChartPanel {

	public static void createDemoPanel(JPanel chartContainer) {
		// The data for the bar chart
		double[] data = {85, 156, 179, 211, 123, 189, 166};

		// The labels for the bar chart
		String[] labels = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};

		// Create a XYChart object of size 250 x 250 pixels
		XYChart c = new XYChart(default_X_pixel, default_Y_pixel);

		// Add a title box using grey (0x555555) 24pt Arial Bold font
		c.addTitle("    Bar Chart Demonstration", "Arial Bold", 24, 0x555555);

		// Set the plotarea at (70, 60) and of size 500 x 300 pixels, with transparent background and border
		// and light grey (0xcccccc) horizontal grid lines
		c.setPlotArea(70, 60, 500, 300, Chart.Transparent, -1, Chart.Transparent, 0xcccccc);
		
		// Set the x and y axis stems to transparent and the label font to 12pt Arial
		c.xAxis().setColors(Chart.Transparent);
		c.yAxis().setColors(Chart.Transparent);
		c.xAxis().setLabelStyle("Arial", 12);
		c.yAxis().setLabelStyle("Arial", 12);
		
		// Add a blue (0x6699bb) bar chart layer using the given data
		BarLayer layer = c.addBarLayer(data, 0x6699bb);

		// Use bar gradient lighting with the light intensity from 0.8 to 1.3
		layer.setBorderColor(Chart.Transparent, Chart.barLighting(0.8, 1.3));

		// Set rounded corners for bars
		layer.setRoundedCorners();

		// Display labela on top of bars using 12pt Arial font
		layer.setAggregateLabelStyle("Arial", 12);

		// Set the labels on the x axis.
		c.xAxis().setLabels(labels);

		// For the automatic y-axis labels, set the minimum spacing to 40 pixels.
		c.yAxis().setTickDensity(40);

		// Add a title to the y axis using dark grey (0x555555) 14pt Arial Bold font
		c.yAxis().setTitle("Y-Axis Title Placeholder", "Arial Bold", 14, 0x555555);

		// Output the chart
		ChartViewer viewer = new ChartViewer();
		viewer.setChart(c);

		// Include tool tip for the chart
		viewer.setImageMap(c.getHTMLImageMap("", "", "title='{xLabel}: ${value}M'"));
		showInCenter(chartContainer,viewer);
	}

}
